package com.uade.magicCompany.entities;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

import com.uade.magicCompany.model.Atraccion;
import com.uade.magicCompany.model.Parque;

@Entity
public class AtraccionEntity {

	@Id
	@Column(name = "atraccionEntity_id")
	private Long id;

	private String nombre;

	private String descripcion;

	private String horarioApertura;

	private String horarioCierre;

	private Integer alturaMinima;

	private Integer edadMinima;

	private String estado;

	private Integer cantidadOcupantes;

	private String duracion;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "parqueEntity_id")
	private ParqueEntity parque;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public String getHorarioApertura() {
		return horarioApertura;
	}

	public void setHorarioApertura(String horarioApertura) {
		this.horarioApertura = horarioApertura;
	}

	public String getHorarioCierre() {
		return horarioCierre;
	}

	public void setHorarioCierre(String horarioCierre) {
		this.horarioCierre = horarioCierre;
	}

	public Integer getAlturaMinima() {
		return alturaMinima;
	}

	public void setAlturaMinima(Integer alturaMinima) {
		this.alturaMinima = alturaMinima;
	}

	public Integer getEdadMinima() {
		return edadMinima;
	}

	public void setEdadMinima(Integer edadMinima) {
		this.edadMinima = edadMinima;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public Integer getCantidadOcupantes() {
		return cantidadOcupantes;
	}

	public void setCantidadOcupantes(Integer cantidadOcupantes) {
		this.cantidadOcupantes = cantidadOcupantes;
	}

	public String getDuracion() {
		return duracion;
	}

	public void setDuracion(String duracion) {
		this.duracion = duracion;
	}

	public ParqueEntity getParque() {
		return parque;
	}

	public void setParque(ParqueEntity parque) {
		this.parque = parque;
	}

	public Atraccion getAtraccion() {
		
		Parque parque = new Parque(getParque().getNombre(), getParque().getDescripcion(), null);
		Atraccion atraccion = new Atraccion(getId(),getNombre(), getDescripcion(),
				getHorarioApertura(), getHorarioCierre(), getAlturaMinima(),
				getEdadMinima(), getCantidadOcupantes(), getDuracion(), parque);
		return atraccion;
	}
}
